package com.ti.leevy.util;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

/**
 * SharedPrefereces保存数据，工具类
 * 
 * @author kTian
 *
 */
public class SharedPreferencesUtil {

	/**
	 * 得到SharedPreferences对象
	 * 
	 * @param context	当前对象
	 * @param sharedName	保存SharedPreferences的名字，不可以为null
	 * @return			返回一个SharedPreferences对象
	 */
	private static SharedPreferences newSharedPreferences(Context context, String sharedName) {
		return context.getSharedPreferences(sharedName, Context.MODE_PRIVATE);
	}
	
	/**
	 * 移除SharedPrefereces中的缓存数据
	 * 
	 * @param context		当前的对象
	 * @param sharedName
	 * @param key
	 */
	public static void removeDataSharedPreferences(Context context, String sharedName, 
			String key) {
		newSharedPreferences(context, sharedName).edit().remove(key);
	}
	
	/**
	 * 保存String类型的数据
	 * 
	 * @param context	当前对象
	 * @param preName	保存SharedPreferences的名字，不可以为null
	 * @param key		
	 * @param value		键对应的值
	 */
	public static void putString(Context context, String sharedName, 
			String key, String value) {
		Editor mEditor = newSharedPreferences(context, sharedName).edit();
		mEditor.putString(key, value);
		mEditor.commit();
	}
	
	/**
	 * 获取保存的String类型的数据
	 * 
	 * @param context	当前对象
	 * @param preName	保存SharedPreferences的名字，不可以为null
	 * @param key
	 * @return String
	 */
	public static String getString(Context context, String sharedName,
			String key) {
		return newSharedPreferences(context, sharedName).getString(key, null);
	}
	
	/**
	 * 保存integer类型的数据
	 * 
	 * @param context	当前对象
	 * @param preName	保存SharedPreferences的名字，不可以为null
	 * @param key		
	 * @param value		键对应的值
	 */
	public static void putInt(Context context, String sharedName, 
			String key, int value) {
		Editor mEditor = newSharedPreferences(context, sharedName).edit();
		mEditor.putInt(key, value);
		mEditor.commit();
	}
	
	/**
	 * 获取保存的integer类型的数据
	 * 
	 * @param context	当前对象
	 * @param preName	保存SharedPreferences的名字，不可以为null
	 * @param key
	 * @return integer
	 */

	public static int getInt(Context context, String sharedName,
			String key) {
		return newSharedPreferences(context, sharedName).getInt(key, 0);
	}
	
	/**
	 * 保存boolean类型的数据
	 * 
	 * @param context	当前对象
	 * @param preName	保存SharedPreferences的名字，不可以为null
	 * @param key		
	 * @param value		键对应的值
	 */
	public static void putBoolean(Context context, String sharedName, 
			String key, boolean value) {
		Editor mEditor = newSharedPreferences(context, sharedName).edit();
		mEditor.putBoolean(key, value);
		mEditor.commit();
	}
	
	/**
	 * 获取保存的boolean类型的数据
	 * 
	 * @param context	当前对象
	 * @param preName	保存SharedPreferences的名字，不可以为null
	 * @param key
	 * @return boolean
	 */

	public static boolean getBoolean(Context context, String sharedName,
			String key) {
		return newSharedPreferences(context, sharedName).getBoolean(key, false);
	}
	
	/**
	 * 保存float类型的数据
	 * 
	 * @param context	当前对象
	 * @param preName	保存SharedPreferences的名字，不可以为null
	 * @param key		
	 * @param value		键对应的值
	 */
	public static void putFloat(Context context, String sharedName, 
			String key, float value) {
		Editor mEditor = newSharedPreferences(context, sharedName).edit();
		mEditor.putFloat(key, value);
		mEditor.commit();
	}
	
	/**
	 * 获取保存的float类型的数据
	 * 
	 * @param context	当前对象
	 * @param preName	保存SharedPreferences的名字，不可以为null
	 * @param key
	 * @return float
	 */

	public static float getFloat(Context context, String sharedName,
			String key) {
		return newSharedPreferences(context, sharedName).getFloat(key, 0f);
	}
	
	/**
	 * 保存long类型的数据
	 * 
	 * @param context	当前对象
	 * @param preName	保存SharedPreferences的名字，不可以为null
	 * @param key		
	 * @param value		键对应的值
	 */
	public static void putLong(Context context, String sharedName, 
			String key, long value) {
		Editor mEditor = newSharedPreferences(context, sharedName).edit();
		mEditor.putLong(key, value);
		mEditor.commit();
	}
	
	/**
	 * 获取保存的long类型的数据
	 * 
	 * @param context	当前对象
	 * @param preName	保存SharedPreferences的名字，不可以为null
	 * @param key
	 * @return long
	 */

	public static long getLong(Context context, String sharedName,
			String key) {
		return newSharedPreferences(context, sharedName).getLong(key, 0);
	}
	
}
